package com.hansming.bss.modules.sfc.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.hansming.bss.common.persistence.CrudDao;
import com.hansming.bss.common.persistence.annotation.MyBatisDao;
import com.hansming.bss.modules.sfc.entity.Line;
import com.hansming.bss.modules.sfc.entity.LineExtr;
import com.hansming.bss.modules.sfc.util.PageBean;

/**
 * 线路Dao接口
 * @author Hansming
 * @version 2017-09-15
 */
@MyBatisDao
public interface LineDao extends CrudDao<Line> {
	
	//查找在主页下方导航栏中的线路集合（有可能变化）
	public List<Line> findFirstPageLineInMenu();
	
	//查找在主页中间导航栏中的线路集合
	public List<Line> findFirstPageLineInNav();
	
	//查找对应线路分类的线路集合
	public List<Line> findtypeLines(String typeid);
	
	//根据条件搜寻线路
	public List<Line> search(String city,int days,int startmonth,int endmonth,int month,String startprice,String endprice,int sortid,int orderid,PageBean page);
	
	//根据类别查找在首页的线路
	public List<Line> getLineByTypeInIndex(String type);
	
	//根据类别查找在线路首页的线路
	public List<Line> getLineBytypeInLinePage(String type);
	
	//
	public void saveallinfo(Line line);

	
//=====================只用于线路后台操作的Dao=================
	//设置隐藏
	public void updateShowOrHideInList(Line line);
	
	
	
	//设置该线路为首页菜单显示的线路
	public int updateLineInMenu(Line line);
	
	//取消设置该线路为首页菜单显示的线路
	public int deleteLineInMenu(Line line);

	//设置该线路为首页导航栏的线路
	public int updateLineInNav(Line line);
	 
	//取消设置气味首页导航栏的线路
	public int deleteLineInNav(Line line);
	
	//设置线路列表页的综合排序
	public int setSort(Line line);
	

	public int savedetails(String details,String id);

	//==================小程序线路DAO===========================
	public List<Line> getlineinminiappindexpage(@Param("page")PageBean page);
	
	//线路首页搜索
	public List<Line> getthreelineInLineIndex();
	
	//线路首页
	public List<Line> getLineInIndexByType(@Param("type")String type,@Param("page")PageBean pagebean);
	
	//线路搜索用接口
	public List<Line> miniappsearchlines(@Param("type")String type,@Param("days")int days,@Param("orderid")int orderid,@Param("sortid")int sortid,@Param("begindate")String begindate,@Param("enddate")String enddate);
	
	
	//=====================================PC线路Dao==============================
	//在首页导航栏展示综合评分最高的四条线路产品
	public List<Line> IndexLine();
	
	public List<Line> getLinesByType(@Param("type")String type);
	
	//线路首页根据类型和需要返回的数目确定返回产品
	public List<Line> getindexlineinfo(@Param("type")String type,@Param("num")Integer num);
	
	//线路首页根据需要返回的数目确定返回产品
	public List<Line> getindexhotinfo(@Param("num")Integer num);


	
	//线路列表页根据搜索条件搜索返回产品
	public List<Line> getlinelistinfo(@Param("city")String city,@Param("days")Integer days,@Param("starttime")String starttime,@Param("endtime")String endtime,@Param("startprice")Integer startprice,@Param("endprice")Integer endprice,@Param("selecttype")Integer selecttype,@Param("order")Integer order,@Param("page")PageBean page);
	
	//线路列表页根据搜索条件搜索返回产品，不限制返回数量
	public List<Line> getlinelistinfoall(@Param("city")String city,@Param("days")Integer days,@Param("starttime")String starttime,@Param("endtime")String endtime,@Param("startprice")Integer startprice,@Param("endprice")Integer endprice,@Param("selecttype")Integer selecttype,@Param("order")Integer order);
	
	//线路详情页根据lineid返回产品信息
	public Line getlinedetailinfo(@Param("lineid")String lineid);
	
	
}
